gtk4.git
7 years agoRemove GtkWindow::role
Matthias Clasen [Wed, 27 Mar 2019 21:03:45 +0000 (17:03 -0400)]
Remove GtkWindow::role

...and the setter/getter for it.

This is a very old X session management thing, and you
will be hard-pressed to find a session manager that can
make use of it, and even harder-pressed to find apps
using it to their advantage.

7 years agofile chooser: Stop setting a role
Matthias Clasen [Wed, 27 Mar 2019 21:28:53 +0000 (17:28 -0400)]
file chooser: Stop setting a role

It does nothing.

7 years agomigration guide: Improve warp-pointer entry
Matthias Clasen [Wed, 27 Mar 2019 18:21:26 +0000 (14:21 -0400)]
migration guide: Improve warp-pointer entry

Mention platform APIs.

7 years agoMerge branch 'pack-type' into 'master'
Matthias Clasen [Wed, 27 Mar 2019 18:12:01 +0000 (18:12 +0000)]
Merge branch 'pack-type' into 'master'

Drop some more child properties

See merge request GNOME/gtk!672

7 years agoMention pack-type in the migration guide
Matthias Clasen [Wed, 27 Mar 2019 17:52:47 +0000 (13:52 -0400)]
Mention pack-type in the migration guide

7 years agoConvert all ui files
Matthias Clasen [Wed, 27 Mar 2019 17:20:18 +0000 (13:20 -0400)]
Convert all ui files

Run gtk4-builder-tool simplify --3to4 over all ui files.

7 years agobuilder-tool: Rewrite pack-type
Matthias Clasen [Wed, 27 Mar 2019 17:14:39 +0000 (13:14 -0400)]
builder-tool: Rewrite pack-type

Replace GtkActionBar::pack-type and GtHeaderBar::pack-type
with child types when going from 3 to 4.

7 years agoaction bar: Drop pack-type
Matthias Clasen [Wed, 27 Mar 2019 17:16:07 +0000 (13:16 -0400)]
action bar: Drop pack-type

Drop the pack-type child property. Allow ui
files to direct children by adding a child
type for it.

7 years agoheader bar: Drop pack-type
Matthias Clasen [Wed, 27 Mar 2019 17:16:49 +0000 (13:16 -0400)]
header bar: Drop pack-type

Drop the pack-type child property. Allow ui files
to direct children by adding a child type.

7 years agodialog: Stop using GtkHeaderBar::pack-type
Matthias Clasen [Wed, 27 Mar 2019 17:35:38 +0000 (13:35 -0400)]
dialog: Stop using GtkHeaderBar::pack-type

We want to get rid of child properties.

7 years agoMigration guide: Updates
Matthias Clasen [Wed, 27 Mar 2019 06:18:36 +0000 (02:18 -0400)]
Migration guide: Updates

7 years agoMerge branch 'entry-sizing' into 'master'
Matthias Clasen [Wed, 27 Mar 2019 05:55:06 +0000 (05:55 +0000)]
Merge branch 'entry-sizing' into 'master'

Entry sizing

Closes #1721

See merge request GNOME/gtk!670

7 years agotext: Allow growing entries
Matthias Clasen [Wed, 27 Mar 2019 05:40:17 +0000 (01:40 -0400)]
text: Allow growing entries

Add a propagate-text-width property, which, when set,
makes the entry request a natural width that is just
enough to fit the content, within the limits given
by width-chars and max-width-chars.

Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1721
7 years agosearch entry: Fix sizing
Matthias Clasen [Wed, 27 Mar 2019 04:22:32 +0000 (00:22 -0400)]
search entry: Fix sizing

Use the same sizing approach we use for GtkEntry:
ignore icons when measuring. This ensures that
search entries don't change size as icons come
and go.

7 years agopassword entry: Fix sizing
Matthias Clasen [Wed, 27 Mar 2019 04:21:11 +0000 (00:21 -0400)]
password entry: Fix sizing

Use the same sizing approach we use for GtkEntry:
ignore icons when measuring. This ensures that
password entries don't change size as icons come
and go.

7 years agoMerge branch 'get_caret_offset_negative_one' into 'master'
Matthias Clasen [Tue, 26 Mar 2019 23:14:48 +0000 (23:14 +0000)]
Merge branch 'get_caret_offset_negative_one' into 'master'

Return -1 for AtkText::get_caret_offset on failure

See merge request GNOME/gtk!666

7 years agoMerge branch 'gdk-api-cleanups' into 'master'
Matthias Clasen [Tue, 26 Mar 2019 22:37:27 +0000 (22:37 +0000)]
Merge branch 'gdk-api-cleanups' into 'master'

Gdk api cleanups

See merge request GNOME/gtk!669

7 years agoRename gdk_device_get_surface_at_position_double
Matthias Clasen [Tue, 26 Mar 2019 00:44:37 +0000 (20:44 -0400)]
Rename gdk_device_get_surface_at_position_double

We can drop the double suffix now.

7 years agoDrop gdk_device_get_surface_at_position
Matthias Clasen [Tue, 26 Mar 2019 00:39:08 +0000 (20:39 -0400)]
Drop gdk_device_get_surface_at_position

It is no longer used.

7 years agogtk: Stop using gtk_device_get_surface_at_position
Matthias Clasen [Tue, 26 Mar 2019 00:37:13 +0000 (20:37 -0400)]
gtk: Stop using gtk_device_get_surface_at_position

We should always use the double variant of the api.

7 years agogdk: Stop using gdk_device_get_surface_at_position
Matthias Clasen [Tue, 26 Mar 2019 00:36:45 +0000 (20:36 -0400)]
gdk: Stop using gdk_device_get_surface_at_position

We should always use the double variant.

7 years agoRename gdk_device_get_position_double
Matthias Clasen [Tue, 26 Mar 2019 00:30:15 +0000 (20:30 -0400)]
Rename gdk_device_get_position_double

We can drop the double suffix now.

7 years agoDrop gdk_device_get_position
Matthias Clasen [Tue, 26 Mar 2019 00:28:08 +0000 (20:28 -0400)]
Drop gdk_device_get_position

It is no longer used.

7 years agogtk: Stop using gdk_device_get_position
Matthias Clasen [Tue, 26 Mar 2019 00:26:59 +0000 (20:26 -0400)]
gtk: Stop using gdk_device_get_position

We should always use the double variant of this api.

7 years agogdk: Stop using gdk_device_get_position
Matthias Clasen [Tue, 26 Mar 2019 00:26:34 +0000 (20:26 -0400)]
gdk: Stop using gdk_device_get_position

We should always use the double variant of this api.

7 years agoRename gdk_surface_get_device_position_double
Matthias Clasen [Mon, 25 Mar 2019 14:12:01 +0000 (10:12 -0400)]
Rename gdk_surface_get_device_position_double

Drop the _double suffix, now that the int version is gone.

7 years agoDrop gdk_surface_get_device_position
Matthias Clasen [Mon, 25 Mar 2019 12:33:56 +0000 (08:33 -0400)]
Drop gdk_surface_get_device_position

Not used anymore.

7 years agogtk: Stop using gdk_surface_get_device_position
Matthias Clasen [Mon, 25 Mar 2019 12:32:50 +0000 (08:32 -0400)]
gtk: Stop using gdk_surface_get_device_position

Use the double version directly.

7 years agogdk: Stop using gdk_surface_get_device_position
Matthias Clasen [Mon, 25 Mar 2019 12:32:10 +0000 (08:32 -0400)]
gdk: Stop using gdk_surface_get_device_position

Use the double variant instead.

7 years agoRemove GtkWindow::gravity
Matthias Clasen [Mon, 25 Mar 2019 02:09:30 +0000 (22:09 -0400)]
Remove GtkWindow::gravity

This was used to interpret the position passed
to gtk_window_move. Since that is gone, gravity
is no longer useful.

7 years agotests: Stop using gtk_window_set_gravity
Matthias Clasen [Mon, 25 Mar 2019 01:50:51 +0000 (21:50 -0400)]
tests: Stop using gtk_window_set_gravity

This api is going away.

7 years agoDrop gtk_window_move and gtk_window_get_position
Matthias Clasen [Mon, 25 Mar 2019 01:46:30 +0000 (21:46 -0400)]
Drop gtk_window_move and gtk_window_get_position

These functions operate with global coordinates,
which are not available on Wayland.

7 years agotreeview: Stop using gtk_window_move
Matthias Clasen [Mon, 25 Mar 2019 01:45:31 +0000 (21:45 -0400)]
treeview: Stop using gtk_window_move

It is going away. The search popup needs to be
redone using popovers.

7 years agofile chooser: Stop using gtk_window_get_position
Matthias Clasen [Mon, 25 Mar 2019 01:45:09 +0000 (21:45 -0400)]
file chooser: Stop using gtk_window_get_position

It is going away.

7 years agotests: Stop using gtk_window_move
Matthias Clasen [Mon, 25 Mar 2019 01:44:31 +0000 (21:44 -0400)]
tests: Stop using gtk_window_move

It is going away.

7 years agoa11y: Don't support changing widget size and position
Matthias Clasen [Tue, 26 Mar 2019 21:37:12 +0000 (17:37 -0400)]
a11y: Don't support changing widget size and position

This does not make sense.

7 years agoAvoid root coordinates in begin_drag/move apis
Matthias Clasen [Sat, 23 Mar 2019 18:56:21 +0000 (14:56 -0400)]
Avoid root coordinates in begin_drag/move apis

Change the all the begin_drag and begin_move apis in
GdkSurface and GtkWindow to expect surface coordinates.

Update the x11 implementation to translate to root
coordinates where it matters. Wayland is ignoring the
coordinates anyway.

7 years agoAdd a window move/resize test
Matthias Clasen [Sun, 24 Mar 2019 14:52:42 +0000 (10:52 -0400)]
Add a window move/resize test

7 years agoUpdate POTFILES.in
Piotr Drąg [Tue, 26 Mar 2019 17:36:51 +0000 (18:36 +0100)]
Update POTFILES.in

7 years agoMerge branch 'wip/alexl/broadway5' into 'master'
Alexander Larsson [Tue, 26 Mar 2019 16:25:10 +0000 (16:25 +0000)]
Merge branch 'wip/alexl/broadway5' into 'master'

Update broadway for gtk4

See merge request GNOME/gtk!667

7 years agobroadway: Remove some spew
Alexander Larsson [Tue, 26 Mar 2019 16:09:41 +0000 (17:09 +0100)]
broadway: Remove some spew

7 years agobroadway: Load all textures before applying display ops, fixing flickers
Alexander Larsson [Tue, 26 Mar 2019 15:29:45 +0000 (16:29 +0100)]
broadway: Load all textures before applying display ops, fixing flickers

7 years agobroadway: Use const use for constants in the js code
Alexander Larsson [Tue, 26 Mar 2019 10:19:08 +0000 (11:19 +0100)]
broadway: Use const use for constants in the js code

7 years agobroadway: Clean up stuff using const defines
Alexander Larsson [Mon, 25 Mar 2019 15:21:34 +0000 (16:21 +0100)]
broadway: Clean up stuff using const defines

7 years agoBroadway: Add id for nodes and reuse old ones
Alexander Larsson [Mon, 25 Mar 2019 13:15:49 +0000 (14:15 +0100)]
Broadway: Add id for nodes and reuse old ones

When sending render nodes from the client to the daemon we add an id,
and whenever we're about to re-send the entire tree node we instead
send the old id. We track all the nodes for the previous frame
of the surface this way.

Having the id on the daemon side will allow us do to much better deltas.

7 years agoDisable accidental debug spew
Alexander Larsson [Mon, 25 Mar 2019 09:49:58 +0000 (10:49 +0100)]
Disable accidental debug spew

7 years agobroadway: Prepare for splitting display ops out of command handling
Alexander Larsson [Fri, 22 Mar 2019 18:55:22 +0000 (19:55 +0100)]
broadway: Prepare for splitting display ops out of command handling

7 years agobroadway: Refcount textures
Alexander Larsson [Fri, 22 Mar 2019 15:41:19 +0000 (16:41 +0100)]
broadway: Refcount textures

We want to delay some rendering, and to make that safe we need to correctly
refcount the use of blob uris for the textures so that we don't unref
it while something is scheduled to use it.

7 years agobroadway: Simplify fallback node cache
Alexander Larsson [Fri, 22 Mar 2019 14:29:24 +0000 (15:29 +0100)]
broadway: Simplify fallback node cache

Since nodes are now cached we just store the fallback as a
texture in a hashtable indexed by the node. If its unused for
5 frames we drop it.

7 years agobroadway: Don't crash of drag-resizing when already active
Alexander Larsson [Fri, 22 Mar 2019 12:52:08 +0000 (13:52 +0100)]
broadway: Don't crash of drag-resizing when already active

This is what the X11 code does.

7 years agobroadway: Send actual float32, not some hack
Alexander Larsson [Fri, 22 Mar 2019 12:42:26 +0000 (13:42 +0100)]
broadway: Send actual float32, not some hack

7 years agobroadway: Use DataView instead of hand-rolled int parsers
Alexander Larsson [Fri, 22 Mar 2019 12:38:19 +0000 (13:38 +0100)]
broadway: Use DataView instead of hand-rolled int parsers

This is nicer in general, but also will let us do floats more sanely.

7 years agoBroadway: Add node for debug nodes
Alexander Larsson [Fri, 22 Mar 2019 11:42:12 +0000 (12:42 +0100)]
Broadway: Add node for debug nodes

This can be helpful when debugging broadway.

7 years agobroadway: Don't fall back for translation transform nodes
Alexander Larsson [Fri, 22 Mar 2019 09:02:18 +0000 (10:02 +0100)]
broadway: Don't fall back for translation transform nodes

These are trivial anyway

7 years agoCI: set a timeout multiplier for the tests
Christoph Reiter [Tue, 26 Mar 2019 15:37:22 +0000 (16:37 +0100)]
CI: set a timeout multiplier for the tests

CI can be slower than your normal dev machine so give it a bit more time

7 years agoReturn -1 for AtkText::get_caret_offset on failure
Martin Robinson [Tue, 26 Mar 2019 14:28:03 +0000 (15:28 +0100)]
Return -1 for AtkText::get_caret_offset on failure

ATK now expects this virtual method to return -1 on failure. This allows
ATs to distinguish between a caret at position 0 and a failure.

7 years agoMerge branch 'wip/layout-manager' into 'master'
Matthias Clasen [Tue, 26 Mar 2019 12:38:18 +0000 (12:38 +0000)]
Merge branch 'wip/layout-manager' into 'master'

Add Layout Managers

See merge request GNOME/gtk!534

7 years agowin32: remove another call to gdk_device_warp()
Christoph Reiter [Tue, 26 Mar 2019 07:19:42 +0000 (08:19 +0100)]
win32: remove another call to gdk_device_warp()

Inline the implementation (untested). To fix the build.

7 years agowin32: remove unused gdk_display_warp_device
Christoph Reiter [Tue, 26 Mar 2019 06:59:01 +0000 (07:59 +0100)]
win32: remove unused gdk_display_warp_device

to fix the build

7 years agoYet another win32 build fix
Matthias Clasen [Tue, 26 Mar 2019 03:29:34 +0000 (23:29 -0400)]
Yet another win32 build fix

So much empty warping.

7 years agoChanges after review
Emmanuele Bassi [Wed, 20 Mar 2019 15:37:15 +0000 (15:37 +0000)]
Changes after review

 - Rename GtkLegacyLayout to GtkCustomLayout
 - Use for() to iterate over children in GtkBinLayout
 - Whitespace fixes for code imported from GtkBox
 - Store the GtkLayoutChild instances inside LayoutManager
 - Simplify the GtkLayoutManager API by dropping unnecessary arguments
 - Fix the ownership model of GtkLayoutManager

7 years agoParse layout properties
Emmanuele Bassi [Mon, 4 Mar 2019 13:15:19 +0000 (13:15 +0000)]
Parse layout properties

If a widget has a LayoutManager instance, then we want to parse layout
properties in UI description files; the grammar is similar to packing
properties in GtkContainer:

    <child>
      <object ...>
        <property name="...">...</property>
        <layout>
          <property name="pname">value</property>
        </layout>
      </object>
    </child>

The properties are applied after a child has been added to its parent,
to the parent's layout manager property should be set.

7 years agoAdd GtkBinLayout
Emmanuele Bassi [Mon, 4 Mar 2019 15:03:34 +0000 (15:03 +0000)]
Add GtkBinLayout

Like GtkBin, but lets you lay out multiple children instead of just one.

7 years agoPort GtkSwitch to GtkLegacyLayout
Emmanuele Bassi [Mon, 4 Mar 2019 13:36:52 +0000 (13:36 +0000)]
Port GtkSwitch to GtkLegacyLayout

7 years agoAdd GtkLegacyLayout
Emmanuele Bassi [Mon, 28 Jan 2019 14:03:25 +0000 (14:03 +0000)]
Add GtkLegacyLayout

GtkLegacyLayout is a layout manager for the transitional period between
the introduction of layout managers and the removal of GtkWidget virtual
functions for the size negotiation.

7 years agodocs: Add chapter on layout managers
Emmanuele Bassi [Fri, 25 Jan 2019 12:30:51 +0000 (12:30 +0000)]
docs: Add chapter on layout managers

7 years agoPort GtkBox to GtkBoxLayout
Emmanuele Bassi [Fri, 25 Jan 2019 12:19:34 +0000 (12:19 +0000)]
Port GtkBox to GtkBoxLayout

We can delegate all the layout management to a GtkBoxLayout, now that we
have one.

7 years agoAdd GtkBoxLayout
Emmanuele Bassi [Wed, 19 Dec 2018 17:32:24 +0000 (17:32 +0000)]
Add GtkBoxLayout

The same layout policy of GtkBox, without all the GtkContainer calories.

7 years agoAdd GtkLayoutChild
Emmanuele Bassi [Wed, 19 Dec 2018 16:01:17 +0000 (16:01 +0000)]
Add GtkLayoutChild

Layout managers needs a way to store properties that control the layout
policy of a widget; typically, we used to store these in GtkContainer's
child properties, but since GtkLayoutManager is decoupled from the
actual container widget, we need a separate storage. Additionally, child
properties have their own downsides, like requiring a separate, global
GParamSpecPool storage, and additional lookup API.

GtkLayoutChild is a simple GObject class, which means you can introspect
and document it as you would any other type.

7 years agoRename the internal GtkLayoutChild type
Emmanuele Bassi [Wed, 19 Dec 2018 16:04:05 +0000 (16:04 +0000)]
Rename the internal GtkLayoutChild type

The type is completely private to GtkLayout, so there's really no need
to namespace it.

7 years agoAdd GtkWidget:layout-manager
Emmanuele Bassi [Thu, 13 Dec 2018 14:04:00 +0000 (14:04 +0000)]
Add GtkWidget:layout-manager

We can use a constructor property for existing container widgets with
a layout policy, and move the layout policy implementation out of the
widget itself and into a LayoutManager subclass.

7 years agoHook GtkLayoutManager into GtkWidget
Emmanuele Bassi [Wed, 12 Dec 2018 17:20:28 +0000 (17:20 +0000)]
Hook GtkLayoutManager into GtkWidget

We delegate the size request mode, the measuring, and the allocation of
a widget through a GtkLayoutManager instance, if one has been attached
to the widget; otherwise, we fall back to the widget's own implementation.

7 years agoAdd GtkLayoutManager
Emmanuele Bassi [Wed, 12 Dec 2018 15:24:41 +0000 (15:24 +0000)]
Add GtkLayoutManager

A base abstract class for layout manager delegate objects.

Layout managers are associated to a single widget, like event
controllers, and are responsible for measuring and allocating the
children of the widget they are bound to.

7 years agoFix the windows build
Matthias Clasen [Tue, 26 Mar 2019 00:05:07 +0000 (20:05 -0400)]
Fix the windows build

There was another warp implementation that needed to be removed.
This commit also addresses a number of compiler warnings
in passing.

7 years agoDoc comment fixup
Timm Bäder [Sun, 17 Mar 2019 06:20:53 +0000 (07:20 +0100)]
Doc comment fixup

7 years agopopover: Always measure contents gizmo
Timm Bäder [Sat, 16 Mar 2019 05:16:43 +0000 (06:16 +0100)]
popover: Always measure contents gizmo

Otherwise we're getting warnings about allocating a widget we haven't
measured first, which is fair. The contents gizmo itself will later take
care about whether or not the real popover child is NULL.

7 years agopopover: Don't try to compute_bounds of a NULL child
Timm Bäder [Sat, 16 Mar 2019 05:16:28 +0000 (06:16 +0100)]
popover: Don't try to compute_bounds of a NULL child

7 years agowin32: Drop the warp implementation
Matthias Clasen [Mon, 25 Mar 2019 14:15:27 +0000 (10:15 -0400)]
win32: Drop the warp implementation

We no longer support pointer warping.

7 years agoUpdate Polish translation
Piotr Drąg [Mon, 25 Mar 2019 13:37:44 +0000 (14:37 +0100)]
Update Polish translation

7 years agoUpdate POTFILES.in
Piotr Drąg [Mon, 25 Mar 2019 13:19:54 +0000 (14:19 +0100)]
Update POTFILES.in

7 years agoRemove gdk_device_warp
Matthias Clasen [Sat, 23 Mar 2019 21:18:55 +0000 (17:18 -0400)]
Remove gdk_device_warp

This was only ever implemented on X11, and is
not something we want to encourage apps to do, ever.

7 years agoRemove a dead file
Matthias Clasen [Sun, 24 Mar 2019 15:08:55 +0000 (11:08 -0400)]
Remove a dead file

We are not using this anymore.

7 years agocolor editor: Don't warn if editing is cancelled
Matthias Clasen [Sun, 24 Mar 2019 15:14:20 +0000 (11:14 -0400)]
color editor: Don't warn if editing is cancelled

Thats a valid way to end color picking.

7 years agoFix compile warning
Benjamin Otte [Sat, 23 Mar 2019 02:08:03 +0000 (03:08 +0100)]
Fix compile warning

7 years agoRemove win32 themeing support
Benjamin Otte [Fri, 22 Mar 2019 21:29:11 +0000 (22:29 +0100)]
Remove win32 themeing support

It was unused through all of GTK 3, so it is not worth supporting.

The best Windows themes do not make use of it at all.

7 years agoMerge branch 'ime-load-fix' into 'master'
LRN [Fri, 22 Mar 2019 21:10:35 +0000 (21:10 +0000)]
Merge branch 'ime-load-fix' into 'master'

Ime load fix (GTK4)

See merge request GNOME/gtk!662

7 years agoFix hover state handling
Matthias Clasen [Fri, 22 Mar 2019 20:33:53 +0000 (16:33 -0400)]
Fix hover state handling

We were not paying enough attention to detail when updating
hover and focus state while generating crossing events. The
invariant that we need to preserve here is that when a widget
has focus or hover, its parent does too.

7 years agoStop walking parent surfaces for crossing event generation
Matthias Clasen [Fri, 22 Mar 2019 19:20:06 +0000 (15:20 -0400)]
Stop walking parent surfaces for crossing event generation

We basically don't have child surfaces anymore (the last
use in popovers is on the way out). This really needs
to be done in terms of widgets, not surfaces. For now,
just stop walking parent surfaces.

7 years agocssparser: Simplify
Benjamin Otte [Fri, 22 Mar 2019 16:37:04 +0000 (17:37 +0100)]
cssparser: Simplify

Remove the uint parser (and use the int parser in the one user of it).

And avoid unnecessarily going through a macro.

7 years agocssparser: Remove unused functions
Benjamin Otte [Fri, 22 Mar 2019 16:23:30 +0000 (17:23 +0100)]
cssparser: Remove unused functions

7 years agoRemove debug spew
Matthias Clasen [Fri, 22 Mar 2019 18:44:51 +0000 (14:44 -0400)]
Remove debug spew

7 years agoGDK W32: Fix property setting to correctly use static strings
Руслан Ижбулатов [Fri, 4 Jan 2019 09:48:46 +0000 (09:48 +0000)]
GDK W32: Fix property setting to correctly use static strings

The strings that are set are static, so g_value_set_static_string() should
be used to set them instead of g_value_set_string().

7 years agoGDK W32: Test for IME correctly
Руслан Ижбулатов [Fri, 22 Mar 2019 15:10:02 +0000 (15:10 +0000)]
GDK W32: Test for IME correctly

ImmIsIME() doesn't work (always returns TRUE) since Vista.
Use ITfActiveLanguageProfileNotifySink to detect TSF changes,
which are equal to IME changes for us.

Also make sure that IMMultiContext re-loads the IM when keyboard layout
changes, otherwise there's a subtle bug that could happen:
* Run GTK application with non-IME layout (US, for example)
* Focus on an editable widget (GtkEntry, for example)
* IM Context is initialized to use the simple IM
* Switch to an IME layout (such as Korean)
* Start typing
* Since IME module is not loaded yet, keypresses are handled
  by a default MS IME handler
* Once IME commits a character, GDK will get a WM_KEYDOWN,
  which will trigger a GdkKeyEvent, which will be handled by
  an event filter in IM Context, which will finally re-evaluate
  its status and load IME, and only after that GTK will get
  to handle IME by itself - but by that point input would
  already be broken.
To avoid this we can emit a dummy event (with Void keyval),
which will cause IM Context to load the appropriate module
immediately.

7 years agoentry: Disconnect text signals in dispose
Matthias Clasen [Thu, 21 Mar 2019 23:15:24 +0000 (19:15 -0400)]
entry: Disconnect text signals in dispose

This was showing up as crashes when closing
the file chooser.

7 years agoMerge branch 'adwaita-remove-selectionmode-assets-master' into 'master'
Matthias Clasen [Wed, 20 Mar 2019 14:10:18 +0000 (14:10 +0000)]
Merge branch 'adwaita-remove-selectionmode-assets-master' into 'master'

Adwaita: Drop checkbox-selectionmode assets

See merge request GNOME/gtk!634

7 years agoMerge branch 'adwaita-selectionmode-checkboxes-master' into 'master'
Matthias Clasen [Wed, 20 Mar 2019 14:10:05 +0000 (14:10 +0000)]
Merge branch 'adwaita-selectionmode-checkboxes-master' into 'master'

Adwaita: Fix selection-mode checkboxes

Closes #28

See merge request GNOME/gtk!629

7 years agoMerge branch 'adwaita-headerbar-switch-margins-master' into 'master'
Matthias Clasen [Wed, 20 Mar 2019 14:06:19 +0000 (14:06 +0000)]
Merge branch 'adwaita-headerbar-switch-margins-master' into 'master'

Adwaita: Adjust switch margins on headerbars

Closes #1759

See merge request GNOME/gtk!651

7 years agoMerge branch 'wip/jimmac/focus-ring-radii' into 'master'
Matthias Clasen [Wed, 20 Mar 2019 12:32:15 +0000 (12:32 +0000)]
Merge branch 'wip/jimmac/focus-ring-radii' into 'master'

Adwaita: draw bigger radius for focus rings

Closes #1756

See merge request GNOME/gtk!649

7 years agowindow: Update state flags
Matthias Clasen [Wed, 20 Mar 2019 00:07:53 +0000 (20:07 -0400)]
window: Update state flags

When the window gets active / inactive, we
don't propagate events, but just send focus-in / -out
to the current focus_widget. Improve this by updating
its state flags as well.

7 years agomain: Fix crossing event generation for parented roots
Matthias Clasen [Tue, 19 Mar 2019 23:12:55 +0000 (19:12 -0400)]
main: Fix crossing event generation for parented roots

We were walking the parent chain here, which now
always needs to consider whether it should stop
at roots. Like this one should.

The symptom was that a label with a popup attached to
it would end up with an unintentional focus ring that
would not go away.